function oTipsEngine(engine) {
  this.engine = engine;
}

oTipsEngine.prototype = {
  // 白色
  debug: function (val) {
    // console.log(this.engine.config.model); // 此处已经能获取到配置信息，在request中已经实现。
    // 只有调试模式才打印输出。
    if (this.engine.config.model == "debug") {
      this.renderTips("alert", val);
    }
  },
  // 绿色
  success: function (val) {
    this.renderTips("success", val);
  },
  // 黄色
  warning: function (val) {
    this.renderTips("warning", val);
  },
  // 红色
  error: function (val) {
    this.renderTips("error", val);
  },
  // 蓝色
  info: function (val) {
    this.renderTips("info", val);
  },
  // 渲染
  renderTips: function (type, val) {
    // 控制台输出变量
    let consoleText = "[" + this.engine.tools.date("yyyy-MM-dd HH:mm:ss") + "]";
    // 如果是对象，则追加状态代码
    if (val.status != undefined) {
      consoleText += "[" + val.status.code + "]";
      val = val.status.message;
    }
    // 追加提示信息
    consoleText += val;

    // 基础消息不弹框，因为也来不及看，直接打印在日志即可。
    if (type == "alert" || type == "info") {
      console.log(consoleText);
    } else {
      if (type == "warning") {
        console.warn(consoleText);
      } else if (type == "success") {
        console.info(consoleText);
      } else if (type == "error") {
        console.error(consoleText);
      }
      // 如果是手机端
      if (this.engine.tools.isMobile()) {
        // 中间弹窗
        this.engine.vue.$toast(val);
        // 顶部弹窗
        // this.engine.vue.$notify({message:val,color:"#ffffff",background:"#103d10"});
      }
      // 如果是Web端
      else {
        // use element-ui's tips control
        // this.engine.vue.$message({
        ELEMENT.Message({
          showClose: true,
          message: val,
          type: type
        });
      }
    }
  },
  // 弹出面板消息，支持 Web 和 APP
  message: function (content, title) {
    if (this.engine.tools.isMobile()) {
      this.engine.vue.$dialog.alert({message: content});
    } else {
      this.engine.vue.$alert(content, title || "消息");
    }
  },
}

export {
  oTipsEngine
}


